/*
 * Es llamado por el gestor Xml para recorrer
 * el grafo y grabar el documento en memoria y grabarlo
 * en el disco.
 * 
 */

package tsb.xml;

import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Iterator;
import org.jdom.Attribute;
import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
import tsb.dominio.conexiones.Conexion;
import tsb.dominio.dispositivos.Dispositivo;
import tsb.dominio.dispositivos.coneccion.Modem;
import tsb.dominio.dispositivos.coneccion.Router;
import tsb.dominio.dispositivos.coneccion.Switch;
import tsb.dominio.dispositivos.hosfinal.PC;
import tsb.dominio.dispositivos.hosfinal.Server;
import tsb.dominio.interfaces.Ethernet;
import tsb.dominio.interfaces.FibraOpticaFastEthernet;
import tsb.dominio.interfaces.FibraOpticaGigabit;
import tsb.dominio.interfaces.InterfaceDeConeccion;
import tsb.dominio.interfaces.InterfazModemPC;
import tsb.dominio.interfaces.RJ45FastEthernet;
import tsb.dominio.interfaces.RJ45Gigabit;
import tsb.dominio.interfaces.Serial;
import tsb.dominio.interfaces.Wireless;

/**
 *
 * @author Luciano
 */
public class XMLWriter {
    
    tsb.grafo.Grafo grafo;
    DocumentoXML xmlDocumen;

    public XMLWriter(tsb.grafo.Grafo g, String direccion) {
        this.grafo=g;
        xmlDocumen = new DocumentoXML();
        
        //busco y grabo los dispositivos
        Iterator iter = grafo.getArrayDispositivos().iterator();
        while(iter.hasNext())
        {
            Dispositivo d=(Dispositivo)iter.next();
            
            if(d instanceof PC){
                xmlDocumen.agregarDispositivo(this.crearElementoPC((PC)d));
                continue;
            }
            if(d instanceof Server)
            {
                xmlDocumen.agregarDispositivo(this.crearElementoServer((Server)d));
                continue;
            }
            if(d instanceof Router)
            {
                xmlDocumen.agregarDispositivo(this.crearElementoRouter((Router)d));
                continue;
            }
            if(d instanceof Switch)
            {
                xmlDocumen.agregarDispositivo(this.crearElementoSwitch((Switch)d));
                continue;
            }
            if(d instanceof  Modem)
            {
                xmlDocumen.agregarDispositivo(this.crearElementoModem((Modem)d));
                continue;
            }
        }
        
        //busco y grabo las conexiones
        
        int in = grafo.getMatriz().getArrayConexiones().get(0).size();
        
        for(int i=0; i<grafo.getMatriz().getArrayConexiones().size();i++)
        {
            for(int j=0; j<grafo.getMatriz().getArrayConexiones().get(i).size();j++)
            {
                if(i!=j && i<j)
                {
                    Conexion c=grafo.getMatriz().getArrayConexiones().get(i).get(j);
                    if(c!=null)
                    {
                        Element elementoConexion = new Element("Conexion");
                        elementoConexion.getAttributes().add(new Attribute("tipo",""+c.getClass().getSimpleName()));
                        elementoConexion.getAttributes().add(new Attribute("nombre",""+c.getNombre()));
                        elementoConexion.getAttributes().add(new Attribute("dispositivoOrigen",""+i));
                        elementoConexion.getAttributes().add(new Attribute("dispositivoDestino",""+j));

                        xmlDocumen.agregarConexion(elementoConexion);

                    }
                }
            }
        }
        
        
        //guardar archivo en disco
        try 
        {
            FileWriter writer = new FileWriter(direccion+"ArchivoDeSalida.xml");
            XMLOutputter xmlOutPutter = new XMLOutputter();
            
            xmlOutPutter.output(xmlDocumen, writer);
            writer.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }

    private Element crearElementoPC(PC pc) {
        Element elementoDispositivo = new Element("Dispositivo");
        Attribute atributoTipo = new Attribute("Tipo", "PC");
        
        Attribute atributoEstado = new Attribute("estado", ""+pc.getEstado());
        Attribute atributoNombreMostrar = new Attribute("nombreAmostrar", pc.getNombreAMostrar());
        Attribute atributoPosX = new Attribute("posX", ""+pc.getX());
        Attribute atributoPosY = new Attribute("posY", ""+pc.getY());
        Attribute atributoDHCP = new Attribute("asignacionIP",""+pc.getDHCP_Static());
        elementoDispositivo.getAttributes().add(atributoTipo);
        elementoDispositivo.getAttributes().add(atributoEstado);
        elementoDispositivo.getAttributes().add(atributoNombreMostrar);
        elementoDispositivo.getAttributes().add(atributoPosX);
        elementoDispositivo.getAttributes().add(atributoPosY);
        elementoDispositivo.getAttributes().add(atributoDHCP);
        
        Element elementoIPGateway = new Element("IPGateway");
        Attribute atributoNumeroGW = new Attribute("ip",""+pc.getGateway());
        elementoIPGateway.getAttributes().add(atributoNumeroGW);
        elementoDispositivo.addContent(elementoIPGateway);
        
        Element elementoIPDNS = new Element("IPDNS");
        Attribute atributoDNS;
        if(pc.getServidorDNS()!=null){
         atributoDNS = new Attribute("ip",""+pc.getServidorDNS().toString());
        }
        else{
             atributoDNS = new Attribute("ip","0.0.0.0");
        }
        elementoIPDNS.getAttributes().add(atributoDNS);
        elementoDispositivo.addContent(elementoIPDNS);
        
        Element elementoInterfaces = new Element("Interfaces");
        
        Iterator iter=pc.getInterfaces().iterator();
        
        while(iter.hasNext())
        {
            InterfaceDeConeccion i=(InterfaceDeConeccion)iter.next();
            
            if(i instanceof Ethernet){
                Ethernet rj=(Ethernet)i;
                elementoInterfaces.addContent(this.crearElementoEthernet(rj));
                continue;
            }
            if(i instanceof RJ45FastEthernet){
                RJ45FastEthernet rj=(RJ45FastEthernet)i;
                elementoInterfaces.addContent(this.crearElementoRJ45FastEthernet(rj));
                continue;
            }
            if(i instanceof FibraOpticaFastEthernet){
                FibraOpticaFastEthernet rj=(FibraOpticaFastEthernet)i;
                elementoInterfaces.addContent(this.crearElementoFibraOpticaFastEthernet(rj));
                continue;
            }
            if(i instanceof RJ45Gigabit)
            {
                RJ45Gigabit rj=(RJ45Gigabit)i;
                elementoInterfaces.addContent(this.crearElementoRJ45Gigabit(rj));
                continue;
            }
            if(i instanceof FibraOpticaGigabit)
            {
                FibraOpticaGigabit rj=(FibraOpticaGigabit)i;
                elementoInterfaces.addContent(this.crearElementoFibraOpticaGigabit(rj));
                continue;
            }
            if(i instanceof InterfazModemPC)
            {
                InterfazModemPC rj=(InterfazModemPC)i;
                elementoInterfaces.addContent(this.crearInterfazModemPC(rj));
                continue;
            }
            if(i instanceof Serial)
            {
                Serial rj =(Serial)i;
                elementoInterfaces.addContent(this.crearSerial(rj));
                continue;
            }
            if(i instanceof Wireless)
            {
                Wireless rj=(Wireless)i;
                elementoInterfaces.addContent(this.crearWireless(rj));
                continue;
            }
        }
        
        elementoDispositivo.addContent(elementoInterfaces);
        
        return elementoDispositivo;
    }
    
    private Element crearElementoServer(Server sr)
    {
        Element elementoDispositivo = new Element("Dispositivo");
        Attribute atributoTipo = new Attribute("Tipo", "Server");
        
        Attribute atributoEstado = new Attribute("estado", ""+sr.getEstado());
        Attribute atributoNombreMostrar = new Attribute("NombreAmostrar", sr.getNombreAMostrar());
        Attribute atributoPosX = new Attribute("posX", ""+sr.getX());
        Attribute atributoPosY = new Attribute("posY", ""+sr.getY());
        Attribute atributoDHCP = new Attribute("asignacionIP",""+sr.getDHCP_Static());
        elementoDispositivo.getAttributes().add(atributoTipo);
        elementoDispositivo.getAttributes().add(atributoEstado);
        elementoDispositivo.getAttributes().add(atributoNombreMostrar);
        elementoDispositivo.getAttributes().add(atributoPosX);
        elementoDispositivo.getAttributes().add(atributoPosY);
        elementoDispositivo.getAttributes().add(atributoDHCP);
        
        Element elementoIPGateway = new Element("IPGateway");
        Attribute atributoNumeroGW = new Attribute("ip",""+sr.getGateway());
        elementoIPGateway.getAttributes().add(atributoNumeroGW);
        elementoDispositivo.addContent(elementoIPGateway);
        
        Element elementoIPDNS = new Element("IPDNS");
        Attribute atributoDNS = new Attribute("ip",""+sr.getServidorDNS().toString());
        elementoIPDNS.getAttributes().add(atributoDNS);
        elementoDispositivo.addContent(elementoIPDNS);
        
        Element elementoInterfaces = new Element("Interfaces");
        
        Iterator iter=sr.getInterfaces().iterator();
        
        while(iter.hasNext())
        {
            InterfaceDeConeccion i=(InterfaceDeConeccion)iter.next();
            
            if(i instanceof Ethernet){
                Ethernet rj=(Ethernet)i;
                elementoInterfaces.addContent(this.crearElementoEthernet(rj));
                continue;
            }
            if(i instanceof RJ45FastEthernet){
                RJ45FastEthernet rj=(RJ45FastEthernet)i;
                elementoInterfaces.addContent(this.crearElementoRJ45FastEthernet(rj));
                continue;
            }
            if(i instanceof FibraOpticaFastEthernet){
                FibraOpticaFastEthernet rj=(FibraOpticaFastEthernet)i;
                elementoInterfaces.addContent(this.crearElementoFibraOpticaFastEthernet(rj));
                continue;
            }
            if(i instanceof RJ45Gigabit)
            {
                RJ45Gigabit rj=(RJ45Gigabit)i;
                elementoInterfaces.addContent(this.crearElementoRJ45Gigabit(rj));
                continue;
            }
            if(i instanceof FibraOpticaGigabit)
            {
                FibraOpticaGigabit rj=(FibraOpticaGigabit)i;
                elementoInterfaces.addContent(this.crearElementoFibraOpticaGigabit(rj));
                continue;
            }
            if(i instanceof InterfazModemPC)
            {
                InterfazModemPC rj=(InterfazModemPC)i;
                elementoInterfaces.addContent(this.crearInterfazModemPC(rj));
                continue;
            }
            if(i instanceof Serial)
            {
                Serial rj =(Serial)i;
                elementoInterfaces.addContent(this.crearSerial(rj));
                continue;
            }
            if(i instanceof Wireless)
            {
                Wireless rj=(Wireless)i;
                elementoInterfaces.addContent(this.crearWireless(rj));
                continue;
            }
        }
        elementoDispositivo.addContent(elementoInterfaces);
        
        return elementoDispositivo;
        
    }
    private Element crearElementoRouter(Router router)
    {
        Element elementoDispositivo = new Element("Dispositivo");
        elementoDispositivo.getAttributes().add(new Attribute("tipo", "Router"));
        elementoDispositivo.getAttributes().add(new Attribute("estado", ""+router.getEstado()));
        elementoDispositivo.getAttributes().add(new Attribute("nombreAmostrar", router.getNombreAMostrar()));
        elementoDispositivo.getAttributes().add(new Attribute("hostName", router.getHostName()));
        elementoDispositivo.getAttributes().add(new Attribute("posX", ""+router.getX()));
        elementoDispositivo.getAttributes().add(new Attribute("posY", ""+router.getY()));
        
        
        Element elementoInterfaces = new Element("Interfaces");
               
        Iterator iter=router.getInterfaces().iterator();
        
        while(iter.hasNext())
        {
            InterfaceDeConeccion i=(InterfaceDeConeccion)iter.next();
            
            if(i instanceof Ethernet){
                Ethernet rj=(Ethernet)i;
                elementoInterfaces.addContent(this.crearElementoEthernet(rj));
                continue;
            }
            if(i instanceof RJ45FastEthernet){
                RJ45FastEthernet rj=(RJ45FastEthernet)i;
                elementoInterfaces.addContent(this.crearElementoRJ45FastEthernet(rj));
                continue;
            }
            if(i instanceof FibraOpticaFastEthernet){
                FibraOpticaFastEthernet rj=(FibraOpticaFastEthernet)i;
                elementoInterfaces.addContent(this.crearElementoFibraOpticaFastEthernet(rj));
                continue;
            }
            if(i instanceof RJ45Gigabit)
            {
                RJ45Gigabit rj=(RJ45Gigabit)i;
                elementoInterfaces.addContent(this.crearElementoRJ45Gigabit(rj));
                continue;
            }
            if(i instanceof FibraOpticaGigabit)
            {
                FibraOpticaGigabit rj=(FibraOpticaGigabit)i;
                elementoInterfaces.addContent(this.crearElementoFibraOpticaGigabit(rj));
                continue;
            }
            if(i instanceof InterfazModemPC)
            {
                InterfazModemPC rj=(InterfazModemPC)i;
                elementoInterfaces.addContent(this.crearInterfazModemPC(rj));
                continue;
            }
            if(i instanceof Serial)
            {
                Serial rj =(Serial)i;
                elementoInterfaces.addContent(this.crearSerial(rj));
                continue;
            }
            if(i instanceof Wireless)
            {
                Wireless rj=(Wireless)i;
                elementoInterfaces.addContent(this.crearWireless(rj));
                continue;
            }
        }
        elementoDispositivo.addContent(elementoInterfaces);
        
        return elementoDispositivo;
        
       
    }

    private Element crearElementoSwitch(Switch sw)
    {
        
        Element elementoDispositivo = new Element("Dispositivo");
        elementoDispositivo.getAttributes().add(new Attribute("tipo", "Switch"));
        elementoDispositivo.getAttributes().add(new Attribute("estado", ""+sw.getEstado()));
        elementoDispositivo.getAttributes().add(new Attribute("nombreAmostrar", sw.getNombreAMostrar()));
        elementoDispositivo.getAttributes().add(new Attribute("posX", ""+sw.getX()));
        elementoDispositivo.getAttributes().add(new Attribute("posY", ""+sw.getY()));
        
        Element elementoInterfaces = new Element("Interfaces");
               
        Iterator iter=sw.getInterfaces().iterator();
        
        while(iter.hasNext())
        {
            InterfaceDeConeccion i=(InterfaceDeConeccion)iter.next();
            
            if(i instanceof Ethernet){
                Ethernet rj=(Ethernet)i;
                elementoInterfaces.addContent(this.crearElementoEthernet(rj));
                continue;
            }
            if(i instanceof RJ45FastEthernet){
                RJ45FastEthernet rj=(RJ45FastEthernet)i;
                elementoInterfaces.addContent(this.crearElementoRJ45FastEthernet(rj));
                continue;
            }
            if(i instanceof FibraOpticaFastEthernet){
                FibraOpticaFastEthernet rj=(FibraOpticaFastEthernet)i;
                elementoInterfaces.addContent(this.crearElementoFibraOpticaFastEthernet(rj));
                continue;
            }
            if(i instanceof RJ45Gigabit)
            {
                RJ45Gigabit rj=(RJ45Gigabit)i;
                elementoInterfaces.addContent(this.crearElementoRJ45Gigabit(rj));
                continue;
            }
            if(i instanceof FibraOpticaGigabit)
            {
                FibraOpticaGigabit rj=(FibraOpticaGigabit)i;
                elementoInterfaces.addContent(this.crearElementoFibraOpticaGigabit(rj));
                continue;
            }
            if(i instanceof InterfazModemPC)
            {
                InterfazModemPC rj=(InterfazModemPC)i;
                elementoInterfaces.addContent(this.crearInterfazModemPC(rj));
                continue;
            }
            if(i instanceof Serial)
            {
                Serial rj =(Serial)i;
                elementoInterfaces.addContent(this.crearSerial(rj));
                continue;
            }
            if(i instanceof Wireless)
            {
                Wireless rj=(Wireless)i;
                elementoInterfaces.addContent(this.crearWireless(rj));
                continue;
            }
        }
        elementoDispositivo.addContent(elementoInterfaces);
        
        return elementoDispositivo;
        
        
    }
    
    private Element crearElementoModem(Modem md)
    {
        Element elementoDispositivo = new Element("Dispositivo");
        elementoDispositivo.getAttributes().add(new Attribute("tipo", "Modem"));
        elementoDispositivo.getAttributes().add(new Attribute("estado", ""+md.getEstado()));
        elementoDispositivo.getAttributes().add(new Attribute("nombreAmostrar", md.getNombreAMostrar()));
        elementoDispositivo.getAttributes().add(new Attribute("posX", ""+md.getX()));
        elementoDispositivo.getAttributes().add(new Attribute("posY", ""+md.getY()));
        
        
        //faltan las interfaces!!!!!
        
        return elementoDispositivo;
    }
    
    private Element crearElementoEthernet(Ethernet rj)
    {
        Element elementoInterfazEthernet = new Element("InterfazEthernet");
                
        elementoInterfazEthernet.getAttributes().add(new Attribute("encendido",""+rj.getEstado()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("autoAnchoDeBanda",""+rj.getDuplex()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("anchoDeBanda",""+rj.getAnchoDeBanda()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("configurcionIP","DHCP"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("IP",rj.getIp().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mascara",rj.getSubNetMask().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mac","aa-aa-aa-aa-aa-aa"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("autoDuplex",""+rj.getDuplex()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("modoDuple","Duplex"));//harcodeado!!!!!!
        return elementoInterfazEthernet;
    }
    
    private Element crearElementoRJ45FastEthernet(RJ45FastEthernet rj)
    {
         Element elementoInterfazEthernet = new Element("InterfazFazEthernetRJ45");
                
        elementoInterfazEthernet.getAttributes().add(new Attribute("encendido",""+rj.getEstado()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("autoAnchoDeBanda",""+rj.getDuplex()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("anchoDeBanda",""+rj.getAnchoDeBanda()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("configurcionIP","DHCP"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("IP",rj.getIp().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mascara",rj.getSubNetMask().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mac","aa-aa-aa-aa-aa-aa"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("autoDuplex",""+rj.getDuplex()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("modoDuple","Duplex"));//harcodeado!!!!!!
        return elementoInterfazEthernet;
    }
    
    private Element crearElementoFibraOpticaFastEthernet(FibraOpticaFastEthernet rj)
    {
         Element elementoInterfazEthernet = new Element("InterfazFastEthernetFibraOptica");
                
        elementoInterfazEthernet.getAttributes().add(new Attribute("encendido",""+rj.getEstado()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("autoAnchoDeBanda",""+rj.getDuplex()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("anchoDeBanda",""+rj.getAnchoDeBanda()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("configurcionIP","DHCP"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("IP",rj.getIp().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mascara",rj.getSubNetMask().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mac","aa-aa-aa-aa-aa-aa"));//harcodeado!!!!!!
      //  elementoInterfazEthernet.getAttributes().add(new Attribute("autoDuplex",""+rj.getDuplex())); la fibra optica no lleva esto
        elementoInterfazEthernet.getAttributes().add(new Attribute("modoDuple","Duplex"));//harcodeado!!!!!!
        return elementoInterfazEthernet;
        
    }
    
    private Element crearElementoRJ45Gigabit(RJ45Gigabit rj)
    {
        Element elementoInterfazEthernet = new Element("InterfazGigabitRJ45");
                
        elementoInterfazEthernet.getAttributes().add(new Attribute("encendido",""+rj.getEstado()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("autoAnchoDeBanda",""+rj.getDuplex()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("anchoDeBanda",""+rj.getAnchoDeBanda()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("configurcionIP","DHCP"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("IP",rj.getIp().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mascara",rj.getSubNetMask().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mac","aa-aa-aa-aa-aa-aa"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("autoDuplex",""+rj.getDuplex()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("modoDuple","Duplex"));//harcodeado!!!!!!
        return elementoInterfazEthernet;
        
    }
    
    private Element crearElementoFibraOpticaGigabit(FibraOpticaGigabit rj)
    {
        Element elementoInterfazEthernet = new Element("InterfazGigabitFibraOptica");
                
        elementoInterfazEthernet.getAttributes().add(new Attribute("encendido",""+rj.getEstado()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("autoAnchoDeBanda",""+rj.getDuplex()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("anchoDeBanda",""+rj.getAnchoDeBanda()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("configurcionIP","DHCP"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("IP",rj.getIp().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mascara",rj.getSubNetMask().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mac","aa-aa-aa-aa-aa-aa"));//harcodeado!!!!!!
        //elementoInterfazEthernet.getAttributes().add(new Attribute("autoDuplex",""+rj.getDuplex()));//la fibra no lleva esto
        elementoInterfazEthernet.getAttributes().add(new Attribute("modoDuple","Duplex"));//harcodeado!!!!!!
        return elementoInterfazEthernet;
        
    }
    
    private Element crearInterfazModemPC(InterfazModemPC rj)
    {
        Element elementoInterfazEthernet = new Element("InterfazModem");
                
        elementoInterfazEthernet.getAttributes().add(new Attribute("encendido",""+rj.getEstado()));
//        elementoInterfazEthernet.getAttributes().add(new Attribute("autoAnchoDeBanda",""+rj.getDuplex()));
//        elementoInterfazEthernet.getAttributes().add(new Attribute("anchoDeBanda",""+rj.getAnchoDeBanda()));
//        elementoInterfazEthernet.getAttributes().add(new Attribute("configurcionIP","DHCP"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("IP",rj.getIp().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mascara",rj.getSubNetMask().toString()));
//        elementoInterfazEthernet.getAttributes().add(new Attribute("mac","aa-aa-aa-aa-aa-aa"));//harcodeado!!!!!!
//        //elementoInterfazEthernet.getAttributes().add(new Attribute("autoDuplex",""+rj.getDuplex()));//la fibra no lleva esto
//        elementoInterfazEthernet.getAttributes().add(new Attribute("modoDuple","Duplex"));//harcodeado!!!!!!
        return elementoInterfazEthernet;
    }
    
    private Element crearSerial(Serial rj)
    {
        Element elementoInterfazEthernet = new Element("InterfazGigabitFibraOptica");
                
        elementoInterfazEthernet.getAttributes().add(new Attribute("encendido",""+rj.getEstado()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("autoAnchoDeBanda",""+rj.getDuplex()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("anchoDeBanda",""+rj.getAnchoDeBanda()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("configurcionIP","DHCP"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("IP",rj.getIp().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mascara",rj.getSubNetMask().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mac","aa-aa-aa-aa-aa-aa"));//harcodeado!!!!!!
        //elementoInterfazEthernet.getAttributes().add(new Attribute("autoDuplex",""+rj.getDuplex()));//la fibra no lleva esto
        //elementoInterfazEthernet.getAttributes().add(new Attribute("modoDuple","Duplex"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("clockRate",""+rj.getClockRate()));  
        return elementoInterfazEthernet;
        
    }
    
    private Element crearWireless(Wireless rj)
    {
         Element elementoInterfazEthernet = new Element("InterfazGigabitFibraOptica");
                
        elementoInterfazEthernet.getAttributes().add(new Attribute("encendido",""+rj.getEstado()));
        //elementoInterfazEthernet.getAttributes().add(new Attribute("autoAnchoDeBanda",""+rj.getDuplex()));
        //elementoInterfazEthernet.getAttributes().add(new Attribute("anchoDeBanda",""+rj.getAnchoDeBanda()));
        //elementoInterfazEthernet.getAttributes().add(new Attribute("configurcionIP","DHCP"));//harcodeado!!!!!!
        elementoInterfazEthernet.getAttributes().add(new Attribute("IP",rj.getIp().toString()));
        elementoInterfazEthernet.getAttributes().add(new Attribute("mascara",rj.getSubNetMask().toString()));
        //elementoInterfazEthernet.getAttributes().add(new Attribute("mac","aa-aa-aa-aa-aa-aa"));//harcodeado!!!!!!
        //elementoInterfazEthernet.getAttributes().add(new Attribute("autoDuplex",""+rj.getDuplex()));//la fibra no lleva esto
        //elementoInterfazEthernet.getAttributes().add(new Attribute("modoDuple","Duplex"));//harcodeado!!!!!!
       // elementoInterfazEthernet.getAttributes().add(new Attribute("clockRate",""+rj.getClockRate()));  
        return elementoInterfazEthernet;
        
    }

}
